Модуль № 2 · Люди и доступ · Администратор доступа

Люди и доступ

Кто что может и откуда это взялось. Элемент 2.2.1 «Группы пользователей и профили доступа».

Учётных записей
0
Жёстких конфликтов
0
Мягких, под контролем
0
Истекает за 14 дней
0
Сотрудники

Роли и права

Элемент 2.1.2. Матрица «объект × операция» для выбранной роли. Роли и операции ведутся в книге — здесь только чтение (R-I1).

Колонки свёрнуты в группы операций: 28 объектов × 13 операций в ширину экрана не помещаются. Нажатие на заголовок группы раскрывает её до отдельных операций. Ячейка — кнопка: работает с клавиатуры и на планшете, где нет наведения.
Роли по доменам

Конфликты разделения полномочий

Элемент 2.2.2. Первоисточник правил — Ролевая_модель.md §7.

ПравилоСторона AСторона BТипУровеньОснование и компенсирующий контрольЗатронуто людей
Реестр, а не матрица «роль × роль»: правил три, ролей пятьдесят. Симметричная таблица дала бы 2500 ячеек при трёх заполненных — экран, который нечего показать. Матрица остаётся вторым представлением тех же данных и строится по одному домену.
СотрудникПравилоКак возникТипОбоснование

История назначений

Кто, кому, что и на каком основании. Истёкшее назначение прав не даёт, но из истории не исчезает (R-I6).

КогдаКтоКомуЧтоДействиеОснование
Контракт экрана — для разработчика Vue/Laravel

Источник данных

Роли, объекты, операции, полномочия, АРМ и SoD приходят из build/config/takt-config.json (сборка scripts/export_config.py из книги и Ролевая_модель.md). Экран их только читает: создание роли или операции здесь невозможно (R-I1). Назначения и пользователи — данные приложения.

Компоненты

AccessMatrixprops: role, objects, groups, expanded[]; emit select-cell. Колонки — группы операций, раскрытие по группе.
AccessCellсостояния: own / inherited / partial / none / sod. Всегда <button>: источник права доступен нажатием, не только наведением.
EffectiveRightsразвёртка наследования; вход — набор ролей, выход — объединение матриц с пометкой роли-источника.
SodBadgeварианты danger (жёсткое) / warning (мягкое) / пунктир (через наследование).

Расчёты — на сервере

Транзитивное замыкание наследования ролей и объединение полномочий считаются рекурсивным CTE в PostgreSQL и кэшируются на роль, а не собираются в браузере: в прототипе это сделано на клиенте только потому, что он самодостаточен. Проверка SoD при назначении — серверная, ответ экрана лишь отражает её.

Права на сам экран

IAM.ADMIN — ведение назначений; IAM.AUDIT — чтение и отчёты. Массовое назначение требует C и BULK (правило двух ключей).